package cn.itcast.bos.dao.base;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import cn.itcast.bos.domain.base.Standard;

public interface StandardDao extends JpaRepository<Standard, Integer> {
	
	//需求根据收派标准名称查询
	/***********方式一：按照springdata-jpa提供方法定义规则定义---适用于简单查询*******************/
	public List<Standard> findByName(String name);
	
	//如果定义方法名有问题，创建dao代理对象抛出异常
	//public List<Standard> findByAbc(String a);
	
	/***********方式二：自定义语句（jpql语句，sql语句）--适用于负责查询*********************************/
	/*方法名可以任意，通过Query注解指定执行语句(查询语句，也可以执行增删改语句)
	 * nativeQuery：默认值是flase 执行jpql语句    true:执行sql语句
	 * */
	@Query(nativeQuery=false,value="from Standard where name = ?")
	public List<Standard> findByAbc(String xx);
	
	@Query(nativeQuery=true,value="select * from T_STANDARD where C_NAME = ?")
	public List<Standard> findByXyz(String xx);
	
	/**
	 * 根据id删除收派标准
	 * @param id
	 */
	@Modifying
	@Query("delete from Standard where id=?")
	public void deleteStandardById(Integer id);
	
	//如果在Query注解中定义是增删改语句，必须加一个注解@Modifying
}
